// token拦截器
import store from "@/store";
import { BASE_URL, ENV } from "./env";
const tokenInterceptor = (config) => {
  if(config.url === "mlogin") {
    return config;
  }
  // 获取token
  // const token = store.state.user.token;
  const token = store.getters['user/token'];
  if (token) {
    config.header = config.header || {};
    config.header["Authorization"] = token;
  }
  return config;
}
// url拦截器
const urlInterceptor = (config) => {
  // 后续配置到环境变量
  config.url = BASE_URL[ENV] + config.url;
  return config;
}
// 响应拦截器
export const responseInterceptor = (response) => {
  // 为什么是[1]需要再看看
  let res = response[1];
  // 判断是否正常响应
  if (!res || res.statusCode !== 200) {
    uni.showToast({
      title: res.msg || "请检查网络是否畅通",
      icon: "none",
    })
    return Promise.reject(res);
  }
  const resData = res.data;
  // 判断code
  if (resData.code === 200) {
    return Promise.resolve(resData);
  }
  // 登录过期
  if (resData.code === 401) {
    // 清除token
    store.commit("setToken", null);
    // 跳转到登录页
    uni.navigateTo({
      url: "/pages/login/login",
    });
    return Promise.reject(resData);
  }
  // 其他错误
  uni.showToast({
    title: resData.msg || "网络异常",
    icon: "none",
  })
  return Promise.reject(resData);
}
export const requestInterceptor = (config) => {
  tokenInterceptor(config);
  urlInterceptor(config);
  return config;
}
